From bc8437eb1cba181ac95102a3bbd8b92f2d0dc3d2 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild2.aw" Date: Mon, 12 Feb 2007 09:54:20 -0700 Subject: [PATCH] [IA64] Avoid recursively walking guest short VHPT Signed-off-by: Anthony Xu --- xen/arch/ia64/vmx/vmx_process.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/xen/arch/ia64/vmx/vmx_process.c b/xen/arch/ia64/vmx/vmx_process.c index 308a4de0ba..be49be8653 100644 --- a/xen/arch/ia64/vmx/vmx_process.c +++ b/xen/arch/ia64/vmx/vmx_process.c @@ -353,6 +353,18 @@ vmx_hpw_miss(u64 vadr , u64 vec, REGS* regs) } } + /* avoid recursively walking (short format) VHPT */ + if ((((vadr ^ vpta.val) << 3) >> (vpta.size + 3)) == 0) { + if (vpsr.ic) { + vcpu_set_isr(v, misr.val); + dtlb_fault(v, vadr); + return IA64_FAULT; + } else { + nested_dtlb(v); + return IA64_FAULT; + } + } + vmx_vcpu_thash(v, vadr, &vhpt_adr); if (!guest_vhpt_lookup(vhpt_adr, &pteval)) { /* VHPT successfully read. */ -- 2.30.2